package org.example.Tool;

import java.util.Arrays;

public class Tool {
    /**
     * 数组交换
     * @param L 左交换位置
     * @param R 右交换位置 */
    public static void swap(int []arr,int L,int R){
        int i = arr[L];
        arr[L] = arr[R];
        arr[R] = i;
    }
    /**
     * @apiNote 具体进度条实现
     * @param start 开始数量
     * @param total 总数量
     * @param startTime  开始时间
     * */
    public void gress(int start,int total,Long startTime){
        String msg = total>10000?"\033[33m(数据量较大，请耐心等待)\033[0m":"";
        String str = start <total ? Math.round(start / (total*1.0)*10000)/100 +
                "%/100% (" + start + "/" + total + ")" +msg:"\033[32m(运行完成:长度"+total+")\033[0m";

        System.out.print

                ( "\r"+"运行进度:" +str +  "-->运行时间:" +Math.round((System.currentTimeMillis()-startTime)/1000.0*100)/100.0 + "s" );

    }
    /**
     * 判断数组是否有效
     * @param arr 数组
     * @return boolean
     * */
    public Boolean Isfail(int[] arr){
        return arr == null || arr.length < 2;
    }
    /**
     * @apiNote 数组扩容
     * */
    public int[] copyarray(int[] arr,int length){
        return Arrays.copyOf(arr,length);
    }


}
